{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Naval Propulsion Plants Maintenance Prediction"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. [Introduction](#intro)\n",
    "2. [Explaratory Data Analysis](#eda)\n",
    "3. [Data Processing](#dp)\n",
    "4. [Model Selection](#ms)\n",
    "* [Linear Models](#linear)\n",
    "* [Ensemble Models](#ensemble)\n",
    "* [Neural Networks](#nn)\n",
    "5. [Final Prediction](#prediction)\n",
    "6. [Conclusion](#conclusion)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=\"intro\"></a>\n",
    "## Introduction"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This work is inspired by paper [Condition-Based Maintenance of Naval Propulsion\n",
    "Systems with Supervised Data Analysis](https://eprint.ncl.ac.uk/244704).\n",
    "\n",
    "As a dataset, the Naval Propulsion Plant __Data Driven Model__ simulation records were taken from [UCI repository](https://archive.ics.uci.edu/ml/datasets/Condition+Based+Maintenance+of+Naval+Propulsion+Plants#).\n",
    "\n",
    "The main issue explored within the project work is __Preventive Maintenance__, a service concept, that implies the life cycle estimation of a certain component. In comparison with the Corrective Maintenance, the PM allows to ensure a component service, repair or substitution before its breakdown, that can raise the efficiency level and reduce costs. \n",
    "\n",
    "In the current work, the __Gas Turbine__ and __Compressor__ decay state coefficients are estimated based on number of propulsion system parameters: shaft torque, rate of revolutions, compressor inlet air temperature and pressure, turbine injection control and fuel flow. To build an estimator, the ML and DL techniques are applied.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Reading the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# reading the sensors data\n",
    "raw = []\n",
    "with open('data/data.txt') as file:\n",
    "    for row in file:\n",
    "        raw.append(row.strip().split('   '))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['1 - Lever position (lp) [ ]',\n",
       " '2 - Ship speed (v) [knots]',\n",
       " '3 - Gas Turbine shaft torque (GTT) [kN m]',\n",
       " '4 - Gas Turbine rate of revolutions (GTn) [rpm]',\n",
       " '5 - Gas Generator rate of revolutions (GGn) [rpm]',\n",
       " '6 - Starboard Propeller Torque (Ts) [kN]',\n",
       " '7 - Port Propeller Torque (Tp) [kN]',\n",
       " '8 - HP Turbine exit temperature (T48) [C]',\n",
       " '9 - GT Compressor inlet air temperature (T1) [C]',\n",
       " '10 - GT Compressor outlet air temperature (T2) [C]',\n",
       " '11 - HP Turbine exit pressure (P48) [bar]',\n",
       " '12 - GT Compressor inlet air pressure (P1) [bar]',\n",
       " '13 - GT Compressor outlet air pressure (P2) [bar]',\n",
       " '14 - Gas Turbine exhaust gas pressure (Pexh) [bar]',\n",
       " '15 - Turbine Injecton Control (TIC) [%]',\n",
       " '16 - Fuel flow (mf) [kg/s]',\n",
       " '17 - GT Compressor decay state coefficient.',\n",
       " '18 - GT Turbine decay state coefficient. ']"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# reading the features description\n",
    "features = open('data/features.txt')\n",
    "features.read().splitlines()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.DataFrame(raw, columns=['lp', 'v', 'gtt', 'gtn', 'ggn', 'ts', 'tp', 't48',\n",
    "                                  't1', 't2', 'p48', 'p1', 'p2', 'pexh', 'tic', 'mf', 'y_1', 'y_2'], dtype = float)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='eda'></a>\n",
    "## Exploratory Data Analysis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(11934, 18)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>lp</th>\n",
       "      <th>v</th>\n",
       "      <th>gtt</th>\n",
       "      <th>gtn</th>\n",
       "      <th>ggn</th>\n",
       "      <th>ts</th>\n",
       "      <th>tp</th>\n",
       "      <th>t48</th>\n",
       "      <th>t1</th>\n",
       "      <th>t2</th>\n",
       "      <th>p48</th>\n",
       "      <th>p1</th>\n",
       "      <th>p2</th>\n",
       "      <th>pexh</th>\n",
       "      <th>tic</th>\n",
       "      <th>mf</th>\n",
       "      <th>y_1</th>\n",
       "      <th>y_2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>11934.000000</td>\n",
       "      <td>11934.000000</td>\n",
       "      <td>11934.000000</td>\n",
       "      <td>11934.000000</td>\n",
       "      <td>11934.000000</td>\n",
       "      <td>11934.000000</td>\n",
       "      <td>11934.000000</td>\n",
       "      <td>11934.000000</td>\n",
       "      <td>11934.0</td>\n",
       "      <td>11934.000000</td>\n",
       "      <td>11934.000000</td>\n",
       "      <td>1.193400e+04</td>\n",
       "      <td>11934.000000</td>\n",
       "      <td>11934.000000</td>\n",
       "      <td>11934.000000</td>\n",
       "      <td>11934.000000</td>\n",
       "      <td>11934.00000</td>\n",
       "      <td>11934.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>5.166667</td>\n",
       "      <td>15.000000</td>\n",
       "      <td>27247.498685</td>\n",
       "      <td>2136.289256</td>\n",
       "      <td>8200.947312</td>\n",
       "      <td>227.335768</td>\n",
       "      <td>227.335768</td>\n",
       "      <td>735.495446</td>\n",
       "      <td>288.0</td>\n",
       "      <td>646.215331</td>\n",
       "      <td>2.352963</td>\n",
       "      <td>9.980000e-01</td>\n",
       "      <td>12.297123</td>\n",
       "      <td>1.029474</td>\n",
       "      <td>33.641261</td>\n",
       "      <td>0.662440</td>\n",
       "      <td>0.97500</td>\n",
       "      <td>0.9875</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>2.626388</td>\n",
       "      <td>7.746291</td>\n",
       "      <td>22148.613155</td>\n",
       "      <td>774.083881</td>\n",
       "      <td>1091.315507</td>\n",
       "      <td>200.495889</td>\n",
       "      <td>200.495889</td>\n",
       "      <td>173.680552</td>\n",
       "      <td>0.0</td>\n",
       "      <td>72.675882</td>\n",
       "      <td>1.084770</td>\n",
       "      <td>2.533635e-13</td>\n",
       "      <td>5.337448</td>\n",
       "      <td>0.010390</td>\n",
       "      <td>25.841363</td>\n",
       "      <td>0.507132</td>\n",
       "      <td>0.01472</td>\n",
       "      <td>0.0075</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.138000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>253.547000</td>\n",
       "      <td>1307.675000</td>\n",
       "      <td>6589.002000</td>\n",
       "      <td>5.304000</td>\n",
       "      <td>5.304000</td>\n",
       "      <td>442.364000</td>\n",
       "      <td>288.0</td>\n",
       "      <td>540.442000</td>\n",
       "      <td>1.093000</td>\n",
       "      <td>9.980000e-01</td>\n",
       "      <td>5.828000</td>\n",
       "      <td>1.019000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.068000</td>\n",
       "      <td>0.95000</td>\n",
       "      <td>0.9750</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>3.144000</td>\n",
       "      <td>9.000000</td>\n",
       "      <td>8375.883750</td>\n",
       "      <td>1386.758000</td>\n",
       "      <td>7058.324000</td>\n",
       "      <td>60.317000</td>\n",
       "      <td>60.317000</td>\n",
       "      <td>589.872750</td>\n",
       "      <td>288.0</td>\n",
       "      <td>578.092250</td>\n",
       "      <td>1.389000</td>\n",
       "      <td>9.980000e-01</td>\n",
       "      <td>7.447250</td>\n",
       "      <td>1.020000</td>\n",
       "      <td>13.677500</td>\n",
       "      <td>0.246000</td>\n",
       "      <td>0.96200</td>\n",
       "      <td>0.9810</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>5.140000</td>\n",
       "      <td>15.000000</td>\n",
       "      <td>21630.659000</td>\n",
       "      <td>1924.326000</td>\n",
       "      <td>8482.081500</td>\n",
       "      <td>175.268000</td>\n",
       "      <td>175.268000</td>\n",
       "      <td>706.038000</td>\n",
       "      <td>288.0</td>\n",
       "      <td>637.141500</td>\n",
       "      <td>2.083000</td>\n",
       "      <td>9.980000e-01</td>\n",
       "      <td>11.092000</td>\n",
       "      <td>1.026000</td>\n",
       "      <td>25.276500</td>\n",
       "      <td>0.496000</td>\n",
       "      <td>0.97500</td>\n",
       "      <td>0.9875</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>7.148000</td>\n",
       "      <td>21.000000</td>\n",
       "      <td>39001.426750</td>\n",
       "      <td>2678.079000</td>\n",
       "      <td>9132.606000</td>\n",
       "      <td>332.364750</td>\n",
       "      <td>332.364750</td>\n",
       "      <td>834.066250</td>\n",
       "      <td>288.0</td>\n",
       "      <td>693.924500</td>\n",
       "      <td>2.981000</td>\n",
       "      <td>9.980000e-01</td>\n",
       "      <td>15.658000</td>\n",
       "      <td>1.036000</td>\n",
       "      <td>44.552500</td>\n",
       "      <td>0.882000</td>\n",
       "      <td>0.98800</td>\n",
       "      <td>0.9940</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>9.300000</td>\n",
       "      <td>27.000000</td>\n",
       "      <td>72784.872000</td>\n",
       "      <td>3560.741000</td>\n",
       "      <td>9797.103000</td>\n",
       "      <td>645.249000</td>\n",
       "      <td>645.249000</td>\n",
       "      <td>1115.797000</td>\n",
       "      <td>288.0</td>\n",
       "      <td>789.094000</td>\n",
       "      <td>4.560000</td>\n",
       "      <td>9.980000e-01</td>\n",
       "      <td>23.140000</td>\n",
       "      <td>1.052000</td>\n",
       "      <td>92.556000</td>\n",
       "      <td>1.832000</td>\n",
       "      <td>1.00000</td>\n",
       "      <td>1.0000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 lp             v           gtt           gtn           ggn  \\\n",
       "count  11934.000000  11934.000000  11934.000000  11934.000000  11934.000000   \n",
       "mean       5.166667     15.000000  27247.498685   2136.289256   8200.947312   \n",
       "std        2.626388      7.746291  22148.613155    774.083881   1091.315507   \n",
       "min        1.138000      3.000000    253.547000   1307.675000   6589.002000   \n",
       "25%        3.144000      9.000000   8375.883750   1386.758000   7058.324000   \n",
       "50%        5.140000     15.000000  21630.659000   1924.326000   8482.081500   \n",
       "75%        7.148000     21.000000  39001.426750   2678.079000   9132.606000   \n",
       "max        9.300000     27.000000  72784.872000   3560.741000   9797.103000   \n",
       "\n",
       "                 ts            tp           t48       t1            t2  \\\n",
       "count  11934.000000  11934.000000  11934.000000  11934.0  11934.000000   \n",
       "mean     227.335768    227.335768    735.495446    288.0    646.215331   \n",
       "std      200.495889    200.495889    173.680552      0.0     72.675882   \n",
       "min        5.304000      5.304000    442.364000    288.0    540.442000   \n",
       "25%       60.317000     60.317000    589.872750    288.0    578.092250   \n",
       "50%      175.268000    175.268000    706.038000    288.0    637.141500   \n",
       "75%      332.364750    332.364750    834.066250    288.0    693.924500   \n",
       "max      645.249000    645.249000   1115.797000    288.0    789.094000   \n",
       "\n",
       "                p48            p1            p2          pexh           tic  \\\n",
       "count  11934.000000  1.193400e+04  11934.000000  11934.000000  11934.000000   \n",
       "mean       2.352963  9.980000e-01     12.297123      1.029474     33.641261   \n",
       "std        1.084770  2.533635e-13      5.337448      0.010390     25.841363   \n",
       "min        1.093000  9.980000e-01      5.828000      1.019000      0.000000   \n",
       "25%        1.389000  9.980000e-01      7.447250      1.020000     13.677500   \n",
       "50%        2.083000  9.980000e-01     11.092000      1.026000     25.276500   \n",
       "75%        2.981000  9.980000e-01     15.658000      1.036000     44.552500   \n",
       "max        4.560000  9.980000e-01     23.140000      1.052000     92.556000   \n",
       "\n",
       "                 mf          y_1         y_2  \n",
       "count  11934.000000  11934.00000  11934.0000  \n",
       "mean       0.662440      0.97500      0.9875  \n",
       "std        0.507132      0.01472      0.0075  \n",
       "min        0.068000      0.95000      0.9750  \n",
       "25%        0.246000      0.96200      0.9810  \n",
       "50%        0.496000      0.97500      0.9875  \n",
       "75%        0.882000      0.98800      0.9940  \n",
       "max        1.832000      1.00000      1.0000  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Judging by the data main statistics, the _t1_ and _p1_ features (the GT compressor inlet air temperature and pressure) are constant at the levels of 288 degrees Celcium and 0.998 bars respectively, so these features can be omitted during the analysis.\n",
    "\n",
    "All the features are of a numerical type, so no encoding techniques should be performed on the data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# removing constant features\n",
    "data.drop(['t1', 'p1'], 1, inplace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>lp</th>\n",
       "      <th>v</th>\n",
       "      <th>gtt</th>\n",
       "      <th>gtn</th>\n",
       "      <th>ggn</th>\n",
       "      <th>ts</th>\n",
       "      <th>tp</th>\n",
       "      <th>t48</th>\n",
       "      <th>t2</th>\n",
       "      <th>p48</th>\n",
       "      <th>p2</th>\n",
       "      <th>pexh</th>\n",
       "      <th>tic</th>\n",
       "      <th>mf</th>\n",
       "      <th>y_1</th>\n",
       "      <th>y_2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   lp  v  gtt  gtn  ggn  ts  tp  t48  t2  p48  p2  pexh  tic  mf  y_1  y_2\n",
       "0   0  0    0    0    0   0   0    0   0    0   0     0    0   0    0    0"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# checking the number of missing values\n",
    "data.isnull().sum().to_frame().T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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K+V8beuWbcREL6dxk6sYfvN/ABh/32i6dOv0l3o7d7uOH9au58bwW/Cu5M1Tzz+W89h9Yx/giezeCZPG8vhDT/Nudm/ETdYYaHhVAzp17sCtN/0Hw8Mg4uYhNG7SiF/37OOZx1/AYXfgMB306d+Lrj06/6XW8uhKvR25Udj1mzkPGkZvYBrgAO4GJgEtgarA3aZpflWcJynppXryJ2RmlnVByVWqVPQy5UlWVlkXlJxRLu//8vdy5veilylvbC477+UaNje8YYfD9X9D6bLz8i7rgpJxt3EMcOpk0cuUMykrx5d1Qok4CrzLtfyrWiHA7S58e2DDhjJf0ZM7diz19faHr0amaX4L5L1vbKxhGAHACdM03fBVQUREREREpOT+zOno+3XQJCIiIiJyZTKMsv8oC38442QYxlv5vwT82zAMHwDTNO91VZiIiIiIiEh5UdSF4zcBq4GV5P75g2HATy5sEhERERGRcsrDDd9LdjkUdalecyAVGAB8Y5rmHCDDNM052f8tIiIiIiLyt1fUzSEygImGYbQBPjIMI4Y/974oERERERERt1Xcg6B/Ab2Ac0AsgGEYr7gqSkREREREyqeyvjFEWd0corgHTn1Ny1TTNG/L/lq4q6JERERERETKk6LuqjcWGAc0MgxjW56HfIEfXBkmIiIiIiJSXhR1V71PgGXAy8Cjeb6eYZrmcZdViYiIiIhIuWQYV+Zd9Yq6OcRJ4CQwvHRyREREREREyp+iZpxERERERERyeJTRzRnKmm4tLiIiIiIiUgQdOImIiIiIiBRBl+qJiIiIiEix6eYQrnThQqk8zRXN4SjrgpLLzCzrgpJxt14ou78QdyWx2cq6oOTs9rIuKBkPN7w4wnTDXyrsWWVdUDJeXmVdUHJuuE+2ebjXPu581tmyTpC/Mc04iYiIiIhIsbnh6azL4kr9uUVERERERIpNB04iIiIiIiJF0KV6IiIiIiJSbFfqzSE04yQiIiIiIlIEzTiJiIiIiEixXakzL1fqzy0iIiIiIlJsOnASEREREREpgi7VExERERGRYtPNIURERERERKRQmnESEREREZFiM8o6oIxoxklERERERKQIOnASEREREREpgi7VExERERGRYvPQzSFERERERESkMDpwEhERERERKUK5vVSvb7tGRI7rh83DYPayrUTOW+/0uL+PNzMeHEzDOv6c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\n",
      "text/plain": [
       "<Figure size 1152x864 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plotting the correlation matrix\n",
    "plt.figure(figsize=(16,12))\n",
    "sns.heatmap(data.corr('spearman'), cmap='GnBu', annot = True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As it can be seen from the correlation matrix, the following features have strong linear correlation between each other:\n",
    "* lever position and ship speed; \n",
    "* gas turbine torque and starboard and portside torques;\n",
    "... \n",
    "\n",
    "All the features are slightly correlated with the target functions. \n",
    "\n",
    "In total, the data is highly correlated, that might cause the problem while fitting the linear model. To avoid the issue, feature selection should be conducted."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "__Important!!!__ During the model selection, I tried to fit the models with only 5 selected features (see below), but the accuracy was lower in comparison with the models fitted with all the data presented in the set.\n",
    "\n",
    "For the future analysis, only several features are kept:\n",
    "* gas turbine shaft torque (as a torque feature);\n",
    "* turbine exit temperature (as a temperature feature);\n",
    "* turbine exit pressure (as a pressure feature);\n",
    "* turbine injecton control (TIC);\n",
    "* fuel flow."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's take a look at some features distributions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(data.gtt, bins = 12)\n",
    "plt.grid()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(data.t48, bins = 20)\n",
    "plt.grid()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(data.p48, bins = 10)\n",
    "plt.grid()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='dp'></a>\n",
    "## Data Preprocessing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = data.iloc[:,:-2]\n",
    "y_1 = data.iloc[:,-2].values\n",
    "y_2 = data.iloc[:,-1].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "# scaling the data to have zero mean and unit variance\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "ss = StandardScaler()\n",
    "X = ss.fit_transform(X)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='ms'></a>\n",
    "## Model Selection"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The following models are built and evaluated in order to choose different approaches to regression problem:\n",
    "1. *Linear Regression* - just a simple linear model with different regularization terms;\n",
    "2. *Ensemble Models* - Random Forst and XGBoost Regressors;\n",
    "3. *Neural Networks* - Shallow NN and Deep NN.\n",
    "\n",
    "For Linear Regression and Ensemble Models Grid Search technqiue is used to find the optimal hyperparameters values. \n",
    "\n",
    "Cross validation is used to initially estimate the model performance. Final estimation is done in the Prediction chapter."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression, Ridge\n",
    "from xgboost import XGBRegressor\n",
    "from sklearn.ensemble import RandomForestRegressor\n",
    "from sklearn.model_selection import GridSearchCV, cross_val_score, train_test_split\n",
    "from sklearn.metrics import mean_squared_error, mean_absolute_error"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='linear'></a>\n",
    "## Linear Models"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Linear Regression"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ordinary Least Squares algorithm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 8 concurrent workers.\n",
      "[Parallel(n_jobs=-1)]: Done   6 out of  10 | elapsed:    1.4s remaining:    0.9s\n",
      "[Parallel(n_jobs=-1)]: Done  10 out of  10 | elapsed:    1.5s finished\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "-0.005009634534446037"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "est = LinearRegression(n_jobs=-1)\n",
    "cross_val_score(est, X, y_1, scoring='neg_mean_absolute_error', cv=10, n_jobs=-1, verbose=1).mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Ridge"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Linear regression algorithm with L2-regularization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 8 concurrent workers.\n",
      "[Parallel(n_jobs=-1)]: Done   6 out of  10 | elapsed:    0.0s remaining:    0.0s\n",
      "[Parallel(n_jobs=-1)]: Done  10 out of  10 | elapsed:    0.0s finished\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "-0.005012637251203854"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "est = Ridge(alpha=0.001)\n",
    "cross_val_score(est, X, y_1, scoring='neg_mean_absolute_error', cv=10, n_jobs=-1, verbose=1).mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='ensemble'></a>\n",
    "## Ensemble Models"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### XGBoost"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The XGBoost hyperparameters are tuned using Grid Search."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 8 concurrent workers.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 5 folds for each of 45 candidates, totalling 225 fits\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  34 tasks      | elapsed:   21.6s\n",
      "[Parallel(n_jobs=-1)]: Done 184 tasks      | elapsed:  1.8min\n",
      "[Parallel(n_jobs=-1)]: Done 225 out of 225 | elapsed:  1.9min finished\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "XGBRegressor(base_score=0.5, booster='gbtree', colsample_bylevel=1,\n",
       "             colsample_bynode=1, colsample_bytree=1, gamma=0, gpu_id=-1,\n",
       "             importance_type='gain', interaction_constraints='',\n",
       "             learning_rate=0.5, max_delta_step=0, max_depth=5,\n",
       "             min_child_weight=1, missing=nan, monotone_constraints='()',\n",
       "             n_estimators=250, n_jobs=0, num_parallel_tree=1, random_state=0,\n",
       "             reg_alpha=0, reg_lambda=1, scale_pos_weight=1, subsample=1,\n",
       "             tree_method='exact', validate_parameters=1, verbosity=None)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid = {'n_estimators':[150, 200, 250], 'learning_rate':[0.01, 0.05, 0.1, 0.5, 1], 'max_depth':[5,7,9]}\n",
    "est = GridSearchCV(XGBRegressor(), grid, n_jobs=-1, cv=5, verbose=1)\n",
    "est.fit(X, y_1)\n",
    "est.best_estimator_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 8 concurrent workers.\n",
      "[Parallel(n_jobs=-1)]: Done   6 out of  10 | elapsed:    3.6s remaining:    2.3s\n",
      "[Parallel(n_jobs=-1)]: Done  10 out of  10 | elapsed:    5.5s finished\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "-0.002078336975334917"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(est.best_estimator_, X, y_1, scoring='neg_mean_absolute_error', cv=10, n_jobs=-1, verbose=1).mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Random Forest"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The Random Forest hyperparameters are tuned using Grid Search."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 8 concurrent workers.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 5 folds for each of 4 candidates, totalling 20 fits\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  20 out of  20 | elapsed:   59.6s finished\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "RandomForestRegressor(n_estimators=150)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid = {'n_estimators':[100, 150, 200, 250]}\n",
    "est = GridSearchCV(RandomForestRegressor(), grid, n_jobs=-1, cv=5, verbose=1)\n",
    "est.fit(X, y_1)\n",
    "est.best_estimator_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 8 concurrent workers.\n",
      "[Parallel(n_jobs=-1)]: Done   6 out of  10 | elapsed:   20.8s remaining:   13.8s\n",
      "[Parallel(n_jobs=-1)]: Done  10 out of  10 | elapsed:   32.5s finished\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "-0.00202346226428769"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_val_score(est.best_estimator_, X, y_1, scoring='neg_mean_absolute_error', cv=10, n_jobs=-1, verbose=1).mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='nn'></a>\n",
    "## Neural Networks"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "__Important!__ The NNs built within the project is a rough presentation of Deep Learning applications for regression tasks. Fine tuning of the networks is not a subject of the current work, thus, a Shallow NN with only one Dense layer and a Deep NN with five Dense layers and one Dropout layer are explored. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "from tensorflow.keras.models import Sequential\n",
    "from tensorflow.keras.layers import Flatten, Dense, Dropout\n",
    "from tensorflow.keras.callbacks import EarlyStopping\n",
    "from tensorflow.keras.regularizers import l1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train, X_test, y_train_1, y_test_1 = train_test_split(X, y_1, test_size=0.2)\n",
    "y_train_2, y_test_2 = train_test_split(y_2, test_size=.2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_accuracy_curve(history):\n",
    "    plt.plot(history.history['mean_absolute_error'])\n",
    "    plt.plot(history.history['val_mean_absolute_error'])\n",
    "    plt.xlabel('Epochs')\n",
    "    plt.ylabel('Accuracy')\n",
    "    plt.legend(['mae','val_mae'], loc='upper right')\n",
    "    plt.title('MAE')\n",
    "    plt.grid()\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Shallow Neural Network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "stop = EarlyStopping('mean_absolute_error', patience=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "dense (Dense)                (None, 128)               1920      \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 1)                 129       \n",
      "=================================================================\n",
      "Total params: 2,049\n",
      "Trainable params: 2,049\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "snn = Sequential([\n",
    "    Dense(128, activation='relu', input_shape = X_train[1].shape),\n",
    "    Dense(1, activation='sigmoid')\n",
    "])\n",
    "\n",
    "snn.compile(optimizer='adam', loss='mean_absolute_error', metrics=['mean_absolute_error'])\n",
    "\n",
    "snn.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "snn_history = snn.fit(X_train, y_train_1, batch_size=128, epochs=500, validation_data=(X_test, y_test_1), verbose=0,\n",
    "                     callbacks=[stop])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "19/19 [==============================] - 0s 1ms/step - loss: 0.0028 - mean_absolute_error: 0.0028\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.002831403398886323, 0.002831403398886323]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "snn.evaluate(X_test, y_test_1, batch_size=128, verbose=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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RWRoWlpaePHFF/cu57YQcre9+uqre9f/3d/9HRB0QX3nO9/hO9/5jrqYylkiri4mEZHBVCBQF5OISD4qEKiLSUQkHxUIdKGciEg+KhDoVhsiIvmoQLCvi6lY83OLiIxGKhBAIh7FQWcyiYjkUIEgaEEA9KfVzyQixVFbW1vqCIdNBYLcAqFTmUREBuhKaoLrIAD6NFItMjr9x3WwaWXeTVWZNESH8KtuygK48H8dcPPXvvY1jjzySP7qr/4KgBtuuAEz49FHH2Xnzp2kUim+/e1vs3DhwkN+1O9//3u++93v0tTUxHPPPcef/dmfsWDBAm688UZ6e3v5zW9+w+zZs7n33nv59re/TTKZpLGxkTvuuIOmpia6u7u55pprWLlyJel0mhtuuKGgzz0UtSAIrqQGtSBEpHCLFi3iV7/61d7lf/3Xf+WKK67gnnvu4ZlnnmHZsmV8+ctfLvjkl+eff54bb7yRlStX8rOf/YxXX32Vp556iiuvvJKbb74ZgA984AM88cQTPPvssyxatIjvfe97APz93/8955xzDsuXL2fZsmV85StfGZYb/6kFQU4Xk66WExmdDvKXfm+R7nN04oknsmXLFjZs2MDWrVtpaGigubmZL37xizz66KNEIhHefvttNm/ezJQpUw75fieffDLNzc0AzJ49mw996EMALFiwgGXLlgHQ0dHBJz7xCTZu3Egymdw7d8SDDz7I0qVL+f73vw9AX18f69ev55hjjnlX31EFgn1dTBqkFpHDcfHFF3PXXXexadMmFi1axB133MHWrVtZsWIF8XiclpYW+vr6CnqvQ80rAXDNNdfwpS99iY997GO0t7dzww03AMEp+nfffTdHH330sH4/dTGhQWoRGZpFixaxZMkS7rrrLi6++GJ2797N5MmTicfjLFu2jDfffHNYPy93bomf/vSne9eff/753HzzzXu7s5599tlh+TwVCDQGISJDc+yxx9LZ2cm0adNobm7m0ksv5emnn6a1tZU77riDefPmDevn3XDDDXz84x/nrLPOYuLEiXvXX3/99aRSKY4//niOO+44rr/++mH5PHUxkdPFpLOYROQwrVy57+ypiRMn8vjjj+fdr6ur64DvcdZZZ3HRRRftXW5vb9/7uq2tbe80pQsXLsx7dlJVVRU//OEPDzP5oakFAVSqBSEi8g5FLRBmdoGZrTazNWZ2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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_accuracy_curve(snn_history)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Deep Neural Network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_1\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "dense_2 (Dense)              (None, 128)               1920      \n",
      "_________________________________________________________________\n",
      "dense_3 (Dense)              (None, 256)               33024     \n",
      "_________________________________________________________________\n",
      "dropout (Dropout)            (None, 256)               0         \n",
      "_________________________________________________________________\n",
      "dense_4 (Dense)              (None, 256)               65792     \n",
      "_________________________________________________________________\n",
      "dense_5 (Dense)              (None, 256)               65792     \n",
      "_________________________________________________________________\n",
      "dense_6 (Dense)              (None, 1)                 257       \n",
      "=================================================================\n",
      "Total params: 166,785\n",
      "Trainable params: 166,785\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "dnn = Sequential([\n",
    "    Dense(128, activation='relu', input_shape=X_train[1].shape),\n",
    "    Dense(256, activation='relu'),\n",
    "    Dropout(0.2),\n",
    "    Dense(256, activation='relu'),\n",
    "    Dense(256, activation='relu'),\n",
    "    Dense(1, activation='sigmoid')\n",
    "])\n",
    "\n",
    "dnn.compile(optimizer='adam', loss='mean_absolute_error', metrics=['mean_absolute_error'])\n",
    "\n",
    "dnn.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "dnn_history = dnn.fit(X_train, y_train_1, batch_size=256, epochs=500, validation_data=(X_test, y_test_1), verbose=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "19/19 [==============================] - 0s 469us/step - loss: 0.0028 - mean_absolute_error: 0.0028\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.002762895543128252, 0.002762895543128252]"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dnn.evaluate(X_test, y_test_1, batch_size=128, verbose=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_accuracy_curve(dnn_history)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='prediction'></a>\n",
    "## Final Prediction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "# ML algorithms prediction function\n",
    "def predict(est, X, y, test_size=0.2):\n",
    "    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=test_size)\n",
    "    est.fit(X_train, y_train)\n",
    "    y_pred = est.predict(X_test)\n",
    "    print('MSE:', mean_squared_error(y_test, y_pred))\n",
    "    print('MAE:', mean_absolute_error(y_test, y_pred))\n",
    "    df = pd.DataFrame([y_test, y_pred]).T\n",
    "    df.rename(columns={0:'true', 1:'pred'}, inplace=True)\n",
    "    df['error'] = abs(df.pred - df.true).round(4)\n",
    "    df.sort_values('error', ascending = False, inplace=True)\n",
    "    return df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "# DL algorithms prediction function\n",
    "def evaluate(model, X=X_test, y=y_test_1, batch_size=128):\n",
    "    y_pred = model.predict(X).flatten()\n",
    "    print('MSE:', mean_squared_error(y, y_pred))\n",
    "    print('MAE:', mean_absolute_error(y, y_pred))\n",
    "    df = pd.DataFrame([y, y_pred.flatten()]).T\n",
    "    df.rename(columns={0:'true', 1:'pred'}, inplace=True)\n",
    "    df['error'] = abs(df.pred - df.true).round(4)\n",
    "    df.sort_values('error', ascending = False, inplace=True)\n",
    "    return df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Compressor decay state coefficient prediction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 3.462702851131436e-05\n",
      "MAE: 0.004627747394058918\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>true</th>\n",
       "      <th>pred</th>\n",
       "      <th>error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1751</th>\n",
       "      <td>0.950</td>\n",
       "      <td>0.969710</td>\n",
       "      <td>0.0197</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1670</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.980374</td>\n",
       "      <td>0.0196</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>926</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.980461</td>\n",
       "      <td>0.0195</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>970</th>\n",
       "      <td>0.951</td>\n",
       "      <td>0.970070</td>\n",
       "      <td>0.0191</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2262</th>\n",
       "      <td>0.951</td>\n",
       "      <td>0.969687</td>\n",
       "      <td>0.0187</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2315</th>\n",
       "      <td>0.976</td>\n",
       "      <td>0.975971</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>805</th>\n",
       "      <td>0.985</td>\n",
       "      <td>0.984959</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2122</th>\n",
       "      <td>0.976</td>\n",
       "      <td>0.976045</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1403</th>\n",
       "      <td>0.976</td>\n",
       "      <td>0.975953</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1764</th>\n",
       "      <td>0.980</td>\n",
       "      <td>0.979966</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2387 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       true      pred   error\n",
       "1751  0.950  0.969710  0.0197\n",
       "1670  1.000  0.980374  0.0196\n",
       "926   1.000  0.980461  0.0195\n",
       "970   0.951  0.970070  0.0191\n",
       "2262  0.951  0.969687  0.0187\n",
       "...     ...       ...     ...\n",
       "2315  0.976  0.975971  0.0000\n",
       "805   0.985  0.984959  0.0000\n",
       "2122  0.976  0.976045  0.0000\n",
       "1403  0.976  0.975953  0.0000\n",
       "1764  0.980  0.979966  0.0000\n",
       "\n",
       "[2387 rows x 3 columns]"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# OLS\n",
    "est = LinearRegression(n_jobs=-1)\n",
    "predict(est, X, y_1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 3.381416872760337e-05\n",
      "MAE: 0.004575650266389215\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>true</th>\n",
       "      <th>pred</th>\n",
       "      <th>error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1988</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.980702</td>\n",
       "      <td>0.0193</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1410</th>\n",
       "      <td>0.950</td>\n",
       "      <td>0.968789</td>\n",
       "      <td>0.0188</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2120</th>\n",
       "      <td>0.951</td>\n",
       "      <td>0.969751</td>\n",
       "      <td>0.0188</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>501</th>\n",
       "      <td>0.996</td>\n",
       "      <td>0.977554</td>\n",
       "      <td>0.0184</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>848</th>\n",
       "      <td>0.951</td>\n",
       "      <td>0.969411</td>\n",
       "      <td>0.0184</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1483</th>\n",
       "      <td>0.970</td>\n",
       "      <td>0.970011</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2352</th>\n",
       "      <td>0.988</td>\n",
       "      <td>0.987953</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>234</th>\n",
       "      <td>0.971</td>\n",
       "      <td>0.971036</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2341</th>\n",
       "      <td>0.985</td>\n",
       "      <td>0.984984</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>705</th>\n",
       "      <td>0.975</td>\n",
       "      <td>0.974974</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2387 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       true      pred   error\n",
       "1988  1.000  0.980702  0.0193\n",
       "1410  0.950  0.968789  0.0188\n",
       "2120  0.951  0.969751  0.0188\n",
       "501   0.996  0.977554  0.0184\n",
       "848   0.951  0.969411  0.0184\n",
       "...     ...       ...     ...\n",
       "1483  0.970  0.970011  0.0000\n",
       "2352  0.988  0.987953  0.0000\n",
       "234   0.971  0.971036  0.0000\n",
       "2341  0.985  0.984984  0.0000\n",
       "705   0.975  0.974974  0.0000\n",
       "\n",
       "[2387 rows x 3 columns]"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Ridge\n",
    "est = Ridge(alpha=0.001)\n",
    "predict(est, X, y_1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 1.9163471895958235e-06\n",
      "MAE: 0.0009699834496794167\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>true</th>\n",
       "      <th>pred</th>\n",
       "      <th>error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1187</th>\n",
       "      <td>0.999</td>\n",
       "      <td>0.983505</td>\n",
       "      <td>0.0155</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1630</th>\n",
       "      <td>0.962</td>\n",
       "      <td>0.952089</td>\n",
       "      <td>0.0099</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2360</th>\n",
       "      <td>0.986</td>\n",
       "      <td>0.976189</td>\n",
       "      <td>0.0098</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>97</th>\n",
       "      <td>0.999</td>\n",
       "      <td>1.007262</td>\n",
       "      <td>0.0083</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2078</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.992875</td>\n",
       "      <td>0.0071</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>883</th>\n",
       "      <td>0.956</td>\n",
       "      <td>0.955989</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>234</th>\n",
       "      <td>0.980</td>\n",
       "      <td>0.979979</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1771</th>\n",
       "      <td>0.968</td>\n",
       "      <td>0.967982</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1573</th>\n",
       "      <td>0.965</td>\n",
       "      <td>0.964951</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1320</th>\n",
       "      <td>0.980</td>\n",
       "      <td>0.979952</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2387 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       true      pred   error\n",
       "1187  0.999  0.983505  0.0155\n",
       "1630  0.962  0.952089  0.0099\n",
       "2360  0.986  0.976189  0.0098\n",
       "97    0.999  1.007262  0.0083\n",
       "2078  1.000  0.992875  0.0071\n",
       "...     ...       ...     ...\n",
       "883   0.956  0.955989  0.0000\n",
       "234   0.980  0.979979  0.0000\n",
       "1771  0.968  0.967982  0.0000\n",
       "1573  0.965  0.964951  0.0000\n",
       "1320  0.980  0.979952  0.0000\n",
       "\n",
       "[2387 rows x 3 columns]"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# XGB\n",
    "est = XGBRegressor(n_estimators=250, max_depth=5, learning_rate=0.5)\n",
    "predict(est, X, y_1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 9.470472652794276e-07\n",
      "MAE: 0.0004996648512777262\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>true</th>\n",
       "      <th>pred</th>\n",
       "      <th>error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>977</th>\n",
       "      <td>0.994</td>\n",
       "      <td>0.980120</td>\n",
       "      <td>0.0139</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1824</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.990740</td>\n",
       "      <td>0.0093</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>402</th>\n",
       "      <td>0.997</td>\n",
       "      <td>0.987907</td>\n",
       "      <td>0.0091</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1832</th>\n",
       "      <td>0.992</td>\n",
       "      <td>0.984847</td>\n",
       "      <td>0.0072</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>618</th>\n",
       "      <td>0.964</td>\n",
       "      <td>0.971020</td>\n",
       "      <td>0.0070</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2108</th>\n",
       "      <td>0.970</td>\n",
       "      <td>0.970000</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>445</th>\n",
       "      <td>0.971</td>\n",
       "      <td>0.970967</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1005</th>\n",
       "      <td>0.969</td>\n",
       "      <td>0.969013</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>453</th>\n",
       "      <td>0.991</td>\n",
       "      <td>0.991020</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1444</th>\n",
       "      <td>0.992</td>\n",
       "      <td>0.992007</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2387 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       true      pred   error\n",
       "977   0.994  0.980120  0.0139\n",
       "1824  1.000  0.990740  0.0093\n",
       "402   0.997  0.987907  0.0091\n",
       "1832  0.992  0.984847  0.0072\n",
       "618   0.964  0.971020  0.0070\n",
       "...     ...       ...     ...\n",
       "2108  0.970  0.970000  0.0000\n",
       "445   0.971  0.970967  0.0000\n",
       "1005  0.969  0.969013  0.0000\n",
       "453   0.991  0.991020  0.0000\n",
       "1444  0.992  0.992007  0.0000\n",
       "\n",
       "[2387 rows x 3 columns]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# RandomForest\n",
    "est = RandomForestRegressor(n_estimators=150)\n",
    "predict(est, X, y_1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 1.4570912546272286e-05\n",
      "MAE: 0.002831403071080294\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>true</th>\n",
       "      <th>pred</th>\n",
       "      <th>error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1877</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.985335</td>\n",
       "      <td>0.0147</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>0.999</td>\n",
       "      <td>0.984666</td>\n",
       "      <td>0.0143</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>219</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.986081</td>\n",
       "      <td>0.0139</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>290</th>\n",
       "      <td>0.998</td>\n",
       "      <td>0.984353</td>\n",
       "      <td>0.0136</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>608</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.986894</td>\n",
       "      <td>0.0131</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1139</th>\n",
       "      <td>0.961</td>\n",
       "      <td>0.961018</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1016</th>\n",
       "      <td>0.951</td>\n",
       "      <td>0.950956</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1505</th>\n",
       "      <td>0.988</td>\n",
       "      <td>0.988030</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>264</th>\n",
       "      <td>0.986</td>\n",
       "      <td>0.985964</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1525</th>\n",
       "      <td>0.984</td>\n",
       "      <td>0.983989</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2387 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       true      pred   error\n",
       "1877  1.000  0.985335  0.0147\n",
       "41    0.999  0.984666  0.0143\n",
       "219   1.000  0.986081  0.0139\n",
       "290   0.998  0.984353  0.0136\n",
       "608   1.000  0.986894  0.0131\n",
       "...     ...       ...     ...\n",
       "1139  0.961  0.961018  0.0000\n",
       "1016  0.951  0.950956  0.0000\n",
       "1505  0.988  0.988030  0.0000\n",
       "264   0.986  0.985964  0.0000\n",
       "1525  0.984  0.983989  0.0000\n",
       "\n",
       "[2387 rows x 3 columns]"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# SNN\n",
    "evaluate(snn)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 9.572622154692642e-06\n",
      "MAE: 0.002762897448505755\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>true</th>\n",
       "      <th>pred</th>\n",
       "      <th>error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>837</th>\n",
       "      <td>0.985</td>\n",
       "      <td>0.979546</td>\n",
       "      <td>0.0055</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1608</th>\n",
       "      <td>0.985</td>\n",
       "      <td>0.979544</td>\n",
       "      <td>0.0055</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>882</th>\n",
       "      <td>0.984</td>\n",
       "      <td>0.978541</td>\n",
       "      <td>0.0055</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2088</th>\n",
       "      <td>0.986</td>\n",
       "      <td>0.980541</td>\n",
       "      <td>0.0055</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>149</th>\n",
       "      <td>0.984</td>\n",
       "      <td>0.978541</td>\n",
       "      <td>0.0055</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>138</th>\n",
       "      <td>0.950</td>\n",
       "      <td>0.950024</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>470</th>\n",
       "      <td>0.951</td>\n",
       "      <td>0.950993</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1008</th>\n",
       "      <td>0.953</td>\n",
       "      <td>0.953043</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>954</th>\n",
       "      <td>0.951</td>\n",
       "      <td>0.951033</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2238</th>\n",
       "      <td>0.952</td>\n",
       "      <td>0.951979</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2387 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       true      pred   error\n",
       "837   0.985  0.979546  0.0055\n",
       "1608  0.985  0.979544  0.0055\n",
       "882   0.984  0.978541  0.0055\n",
       "2088  0.986  0.980541  0.0055\n",
       "149   0.984  0.978541  0.0055\n",
       "...     ...       ...     ...\n",
       "138   0.950  0.950024  0.0000\n",
       "470   0.951  0.950993  0.0000\n",
       "1008  0.953  0.953043  0.0000\n",
       "954   0.951  0.951033  0.0000\n",
       "2238  0.952  0.951979  0.0000\n",
       "\n",
       "[2387 rows x 3 columns]"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# DNN\n",
    "evaluate(dnn)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Turbine decay state coefficient prediction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 4.933485965136956e-06\n",
      "MAE: 0.0016838846883390243\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>true</th>\n",
       "      <th>pred</th>\n",
       "      <th>error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1962</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.990826</td>\n",
       "      <td>0.0092</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1622</th>\n",
       "      <td>0.996</td>\n",
       "      <td>0.987180</td>\n",
       "      <td>0.0088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>436</th>\n",
       "      <td>0.991</td>\n",
       "      <td>0.982319</td>\n",
       "      <td>0.0087</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>290</th>\n",
       "      <td>0.996</td>\n",
       "      <td>0.987608</td>\n",
       "      <td>0.0084</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1347</th>\n",
       "      <td>0.996</td>\n",
       "      <td>0.987743</td>\n",
       "      <td>0.0083</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>875</th>\n",
       "      <td>0.985</td>\n",
       "      <td>0.985012</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>533</th>\n",
       "      <td>0.997</td>\n",
       "      <td>0.997003</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>919</th>\n",
       "      <td>0.990</td>\n",
       "      <td>0.990022</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1945</th>\n",
       "      <td>0.984</td>\n",
       "      <td>0.984042</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>868</th>\n",
       "      <td>0.986</td>\n",
       "      <td>0.985999</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2387 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       true      pred   error\n",
       "1962  1.000  0.990826  0.0092\n",
       "1622  0.996  0.987180  0.0088\n",
       "436   0.991  0.982319  0.0087\n",
       "290   0.996  0.987608  0.0084\n",
       "1347  0.996  0.987743  0.0083\n",
       "...     ...       ...     ...\n",
       "875   0.985  0.985012  0.0000\n",
       "533   0.997  0.997003  0.0000\n",
       "919   0.990  0.990022  0.0000\n",
       "1945  0.984  0.984042  0.0000\n",
       "868   0.986  0.985999  0.0000\n",
       "\n",
       "[2387 rows x 3 columns]"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# OLS\n",
    "est = LinearRegression(n_jobs=-1)\n",
    "predict(est, X, y_2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 5.505015434030395e-06\n",
      "MAE: 0.001753013496301211\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>true</th>\n",
       "      <th>pred</th>\n",
       "      <th>error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1361</th>\n",
       "      <td>0.998</td>\n",
       "      <td>0.988291</td>\n",
       "      <td>0.0097</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2247</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.990405</td>\n",
       "      <td>0.0096</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1882</th>\n",
       "      <td>0.997</td>\n",
       "      <td>0.987521</td>\n",
       "      <td>0.0095</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>140</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.990497</td>\n",
       "      <td>0.0095</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1767</th>\n",
       "      <td>0.995</td>\n",
       "      <td>0.985713</td>\n",
       "      <td>0.0093</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1712</th>\n",
       "      <td>0.988</td>\n",
       "      <td>0.987967</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>597</th>\n",
       "      <td>0.982</td>\n",
       "      <td>0.981959</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1546</th>\n",
       "      <td>0.979</td>\n",
       "      <td>0.978977</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>685</th>\n",
       "      <td>0.982</td>\n",
       "      <td>0.981957</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2287</th>\n",
       "      <td>0.988</td>\n",
       "      <td>0.987997</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2387 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       true      pred   error\n",
       "1361  0.998  0.988291  0.0097\n",
       "2247  1.000  0.990405  0.0096\n",
       "1882  0.997  0.987521  0.0095\n",
       "140   1.000  0.990497  0.0095\n",
       "1767  0.995  0.985713  0.0093\n",
       "...     ...       ...     ...\n",
       "1712  0.988  0.987967  0.0000\n",
       "597   0.982  0.981959  0.0000\n",
       "1546  0.979  0.978977  0.0000\n",
       "685   0.982  0.981957  0.0000\n",
       "2287  0.988  0.987997  0.0000\n",
       "\n",
       "[2387 rows x 3 columns]"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Ridge\n",
    "est = Ridge(alpha=0.001)\n",
    "predict(est, X, y_2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 1.1585603174085028e-06\n",
      "MAE: 0.000745542835480108\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>true</th>\n",
       "      <th>pred</th>\n",
       "      <th>error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1777</th>\n",
       "      <td>0.978</td>\n",
       "      <td>0.988531</td>\n",
       "      <td>0.0105</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2205</th>\n",
       "      <td>0.977</td>\n",
       "      <td>0.984915</td>\n",
       "      <td>0.0079</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>999</th>\n",
       "      <td>0.975</td>\n",
       "      <td>0.982726</td>\n",
       "      <td>0.0077</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2068</th>\n",
       "      <td>0.976</td>\n",
       "      <td>0.982599</td>\n",
       "      <td>0.0066</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1613</th>\n",
       "      <td>0.976</td>\n",
       "      <td>0.981965</td>\n",
       "      <td>0.0060</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2170</th>\n",
       "      <td>0.989</td>\n",
       "      <td>0.988990</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>486</th>\n",
       "      <td>0.986</td>\n",
       "      <td>0.985967</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2178</th>\n",
       "      <td>0.976</td>\n",
       "      <td>0.975986</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1340</th>\n",
       "      <td>0.984</td>\n",
       "      <td>0.984011</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1654</th>\n",
       "      <td>0.999</td>\n",
       "      <td>0.998956</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2387 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       true      pred   error\n",
       "1777  0.978  0.988531  0.0105\n",
       "2205  0.977  0.984915  0.0079\n",
       "999   0.975  0.982726  0.0077\n",
       "2068  0.976  0.982599  0.0066\n",
       "1613  0.976  0.981965  0.0060\n",
       "...     ...       ...     ...\n",
       "2170  0.989  0.988990  0.0000\n",
       "486   0.986  0.985967  0.0000\n",
       "2178  0.976  0.975986  0.0000\n",
       "1340  0.984  0.984011  0.0000\n",
       "1654  0.999  0.998956  0.0000\n",
       "\n",
       "[2387 rows x 3 columns]"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# XGB\n",
    "est = XGBRegressor(n_estimators=250, max_depth=5, learning_rate=0.5)\n",
    "predict(est, X, y_2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 4.1818881906626256e-07\n",
      "MAE: 0.00030988409440021607\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>true</th>\n",
       "      <th>pred</th>\n",
       "      <th>error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1118</th>\n",
       "      <td>0.975</td>\n",
       "      <td>0.982047</td>\n",
       "      <td>0.0070</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>710</th>\n",
       "      <td>0.997</td>\n",
       "      <td>0.990260</td>\n",
       "      <td>0.0067</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1981</th>\n",
       "      <td>0.975</td>\n",
       "      <td>0.981393</td>\n",
       "      <td>0.0064</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1238</th>\n",
       "      <td>0.975</td>\n",
       "      <td>0.980820</td>\n",
       "      <td>0.0058</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1191</th>\n",
       "      <td>0.980</td>\n",
       "      <td>0.985807</td>\n",
       "      <td>0.0058</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1059</th>\n",
       "      <td>0.995</td>\n",
       "      <td>0.995007</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1058</th>\n",
       "      <td>0.989</td>\n",
       "      <td>0.989007</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1891</th>\n",
       "      <td>0.986</td>\n",
       "      <td>0.986020</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1895</th>\n",
       "      <td>0.986</td>\n",
       "      <td>0.985967</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2386</th>\n",
       "      <td>0.978</td>\n",
       "      <td>0.978000</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2387 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       true      pred   error\n",
       "1118  0.975  0.982047  0.0070\n",
       "710   0.997  0.990260  0.0067\n",
       "1981  0.975  0.981393  0.0064\n",
       "1238  0.975  0.980820  0.0058\n",
       "1191  0.980  0.985807  0.0058\n",
       "...     ...       ...     ...\n",
       "1059  0.995  0.995007  0.0000\n",
       "1058  0.989  0.989007  0.0000\n",
       "1891  0.986  0.986020  0.0000\n",
       "1895  0.986  0.985967  0.0000\n",
       "2386  0.978  0.978000  0.0000\n",
       "\n",
       "[2387 rows x 3 columns]"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# RandomForest\n",
    "est = RandomForestRegressor(n_estimators=150)\n",
    "predict(est, X, y_2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 5.7554012844299326e-05\n",
      "MAE: 0.006441809832225753\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>true</th>\n",
       "      <th>pred</th>\n",
       "      <th>error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1909</th>\n",
       "      <td>0.975</td>\n",
       "      <td>0.991511</td>\n",
       "      <td>0.0165</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1538</th>\n",
       "      <td>0.975</td>\n",
       "      <td>0.991358</td>\n",
       "      <td>0.0164</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1458</th>\n",
       "      <td>0.975</td>\n",
       "      <td>0.991200</td>\n",
       "      <td>0.0162</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2049</th>\n",
       "      <td>0.975</td>\n",
       "      <td>0.991104</td>\n",
       "      <td>0.0161</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1384</th>\n",
       "      <td>0.975</td>\n",
       "      <td>0.990994</td>\n",
       "      <td>0.0160</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>317</th>\n",
       "      <td>0.990</td>\n",
       "      <td>0.989991</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2043</th>\n",
       "      <td>0.987</td>\n",
       "      <td>0.986964</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1307</th>\n",
       "      <td>0.991</td>\n",
       "      <td>0.991004</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>843</th>\n",
       "      <td>0.991</td>\n",
       "      <td>0.990995</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1072</th>\n",
       "      <td>0.991</td>\n",
       "      <td>0.990993</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2387 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       true      pred   error\n",
       "1909  0.975  0.991511  0.0165\n",
       "1538  0.975  0.991358  0.0164\n",
       "1458  0.975  0.991200  0.0162\n",
       "2049  0.975  0.991104  0.0161\n",
       "1384  0.975  0.990994  0.0160\n",
       "...     ...       ...     ...\n",
       "317   0.990  0.989991  0.0000\n",
       "2043  0.987  0.986964  0.0000\n",
       "1307  0.991  0.991004  0.0000\n",
       "843   0.991  0.990995  0.0000\n",
       "1072  0.991  0.990993  0.0000\n",
       "\n",
       "[2387 rows x 3 columns]"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# SNN\n",
    "snn.fit(X_train, y_train_2, batch_size=128, epochs=500, validation_data=(X_test, y_test_2), verbose=0, callbacks=[stop])\n",
    "evaluate(snn, y=y_test_2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 5.5279970912879836e-05\n",
      "MAE: 0.006388910562062197\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>true</th>\n",
       "      <th>pred</th>\n",
       "      <th>error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>387</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.983842</td>\n",
       "      <td>0.0162</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>352</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.984242</td>\n",
       "      <td>0.0158</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>321</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.984518</td>\n",
       "      <td>0.0155</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1224</th>\n",
       "      <td>1.000</td>\n",
       "      <td>0.984580</td>\n",
       "      <td>0.0154</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>915</th>\n",
       "      <td>0.999</td>\n",
       "      <td>0.983746</td>\n",
       "      <td>0.0153</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2231</th>\n",
       "      <td>0.987</td>\n",
       "      <td>0.987024</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>170</th>\n",
       "      <td>0.987</td>\n",
       "      <td>0.986986</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2003</th>\n",
       "      <td>0.987</td>\n",
       "      <td>0.986961</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1294</th>\n",
       "      <td>0.987</td>\n",
       "      <td>0.986979</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1796</th>\n",
       "      <td>0.987</td>\n",
       "      <td>0.987012</td>\n",
       "      <td>0.0000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2387 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       true      pred   error\n",
       "387   1.000  0.983842  0.0162\n",
       "352   1.000  0.984242  0.0158\n",
       "321   1.000  0.984518  0.0155\n",
       "1224  1.000  0.984580  0.0154\n",
       "915   0.999  0.983746  0.0153\n",
       "...     ...       ...     ...\n",
       "2231  0.987  0.987024  0.0000\n",
       "170   0.987  0.986986  0.0000\n",
       "2003  0.987  0.986961  0.0000\n",
       "1294  0.987  0.986979  0.0000\n",
       "1796  0.987  0.987012  0.0000\n",
       "\n",
       "[2387 rows x 3 columns]"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# DNN\n",
    "dnn.fit(X_train, y_train_2, batch_size=128, epochs=500, validation_data=(X_test, y_test_2), verbose=0, callbacks=[stop])\n",
    "evaluate(dnn, y=y_test_2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='conclusion'></a>\n",
    "## Conclusion"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "During the project work, the propulsion plants preventive maintenance possibility was examined. The gas compressor and turbine decay state coefficients were predicted based on the Data Driven Model GT parameters.\n",
    "\n",
    "The model showed the best results is __Random Forest__ algorithm with the performance:\n",
    "MSE = 9.5e-07, and MAE = 0.0005 for Compressor Decay State Coefficient;\n",
    "MSE = 4.2e-07, and MAE = 0.0003 for Turbine Decay State Coefficient.\n",
    "\n",
    "Neural Networks also have high performance, moreover, with a fine tuning even higher scores can be achieved.\n",
    "\n",
    "The performance of each model is accurate enough to be used in the industrial applications. The final model can be chosen between the explored based on the time and power efficiency.\n",
    "\n",
    "\n",
    "It turned out, that the models fitted with the 14 features (all except constant compressor inlet air temperature and pressure features) show more accurate results than the ones fitted with the chosen set of 5 parameters (in accordance with the correlation matrix)."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
